package com.ydlclass.Transport.message.Request;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 服务调用方发起的请求
 * @Builder 可以使用创建者设计模式来创建实例,一直在...
 * @Author duWenJian
 * @Date 2024/2/20 13:35
 * @Version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class YrpcRequest {
    /**
     * 请求id, 以后采用雪花算法生成id
     */
    private long requestId;
    /**
     * 请求类型
     */
    private byte requestType;
    /**
     * 压缩类型 gzip, snappy, none
     */
    private byte compressType;
    /**
     * 序列化类型 jdk, hessian, protobuf
     */
    private byte serializeType;

    /**
     * 时间戳,用于心跳检测时间
     */
    private long timeStamp;

    /**
     * 请求体(接口的名字,参数类型,具体参数,返回值)
     */
    private RequestPayload requestPayload;
}
